Voice-over-Internet Protocol (VoIP) is a technology that enables the delivery of voice communications over IP networks. Some of the operations involved in a VoIP telephone call are similar to those of conventional digital telephony, and generally involve signaling, channel setup, digitization of analog voice signals, and encoding. Rather than being transmitted over a circuit-switched network, however, voice signals are packetized and transmitted over packet-switched networks (e.g., the Internet).
VoIP systems typically employ session control and signaling protocols that control the signaling, set-up, and tear-down of calls. These systems transport audio streams using media delivery protocols that encode voice, audio, or video. Various codecs (i.e., devices or programs capable of coding and/or decoding data streams) exist that optimize a media stream based on application requirements and/or network bandwidth. For example, some applications may rely on narrowband and compressed speech, whereas other applications may support high fidelity stereo codecs.
In some situations, a caller may initiate a VoIP communication from an environment that employs a given codec, and the called party may receive the call in another environment that uses a different codec. Therefore, in order to support that call, a VoIP system may at some point perform a “transcoding” operation, whereby data is converted from one encoding to another. There are presently many different codecs used by VoIP systems. For example, the International Telecommunications Union (ITU) prescribes numerous standard codecs (e.g., G.711, G.721, G.722, G.723, G.726, etc.) with varying characteristics such as bit rates, packet sizes, sampling rates, and the like.